Many modern consumer-grade storage devices, such as universal serial bus (USB) flash drives, incorporate multi-level cell (MLC) NAND devices as a storage medium in order to increase the storage capacity of the devices by increasing the amount of information that can be stored per cell. For example, some MLC memories store two-bits per cell, providing four analog levels (typically using a floating gate FET)) or three-bits per cell, providing eight analog levels (sometimes referred to as a three-level cell (TLC)). Additionally, the geometry of NAND cells is constantly being reduced in size (known as die shrink) in order to increase the densities of these devices.
A negative consequence of this increase in density is that data retention (the amount of time a memory cell will hold its data without being refreshed) is drastically reduced. This can especially be a problem for USB devices when used for long-term storage of data (e.g., photos). Because these devices effectively become “read-mostly” or “read-only” devices, there is not much, if any, opportunity to refresh the stored data, which can result in the stored data becoming unreadable over time.
A typical user may learn of this data retention problem only after trying to read data and getting an error indicating that the data is un-readable. Sophisticated users may recognize this problem in advance and either backup the stored data on a secondary device or manually refresh the stored data on the memory device by copying the data off of the memory device and onto a host (e.g., a computer) and then re-writing the data from the host back onto the memory device. However, this refreshing process may not refresh all of the data on the memory device, such as important file indexes and meta data that is normally not seen by the end user. So, even if a user is sophisticated enough to know that data stored on the memory device should be refreshed, the refreshing process may be inconvenient for the user and may not even be complete. Also, the user would need to remember to perform this manual refresh process, which the user may forget about if the memory device is treated as a long-term storage device that is not used very often.
More-sophisticated storage devices, such as solid-state drives (SSDs), can contain an operating mode that monitors the error rates and data retention characteristics of the drive but, in most cases, require some host write or read activity to trigger the measurements that would trigger refreshing portions of the drive.
Overview
Embodiments of the present invention are defined by the claims, and nothing in this section should be taken as a limitation on those claims.
By way of introduction, the below embodiments relate to storage device and method for performing a self-refresh operation. In one embodiment, a storage device is provided with a memory and a controller. In response to determining that the self-refresh operation needs to be performed, the storage device performs the self-refresh operation by reading data from the memory and writing the data back to the memory without transferring the data outside of the storage device. Other embodiments are possible, and each of the embodiments can be used alone or together in combination. Various embodiments will now be described with reference to the attached drawings.